package cn.cool.springframework.beans.factory.support;

import cn.cool.springframework.beans.factory.config.SingletonBeanRegistry;

import java.util.HashMap;
import java.util.Map;

/**
 * 存储和管理单例对象：
 * 在DefaultSingletonBeanRegistry 中主要实现了getSingleton 方法，同时实现了一个受保护的
 *  addSingleton对象，这个方法可以被继承此类的其他类调用。
 *  包括：AbstractBeanFactory以及继承的 DefaultListableBeanFactory 调用
 */
public class DefaultSingletonBeanRegistry implements SingletonBeanRegistry {
    private Map<String, Object> singletonObjects = new HashMap<>();

    @Override
    public Object getSingleton(String beanName) {
        return singletonObjects.get(beanName);
    }


    protected void addSingleton(String beanName, Object singletonObject) {
        singletonObjects.put(beanName, singletonObject);
    }
}



